
var pwdForm = $('#resetPwdForm');

function updatePassword(loginId){
    // 重置表单验证
    resetPwdValidator();
    // 修改表单标识
    $('#pwdModalLabel span').text('修改密码');
    $(':input[name="prePassword"]').closest('[class*="form-group"]').removeClass('hidden').addClass('show');
    // 填充表单
    pwdForm.find(':input').val(null);
    pwdForm.find(':input[name="loginId"]').val(loginId);
    // 显示弹出框
    $.launchDialog('resetPwdModal');
}

$('#savePwdBtn').click(function () {
    //开启验证
    pwdForm.data('bootstrapValidator').validate();

    if (pwdForm.data('bootstrapValidator').isValid()) {
        $.ajax({
            async: true,// 异步请求
            type: 'post',
            dataType: 'json',
            url: ctx + '/tbSysLoginmsg/updatePassword',
            data: {
                loginId: pwdForm.serializeObject().loginId,
                prePassword: pwdForm.serializeObject().prePassword,
                loginPasswd: pwdForm.serializeObject().loginPasswd,
            },
            success: function (data) {
                if (data.success == true) {
                    // 关闭窗口
                    $('#resetPwdModal').modal('hide');
                    $.successMessage(data.msg, pageContentArea);
                } else {
                    $.alertMessage('抱歉! 系统异常, 请联系管理员处理, 或稍后再试. ', pwdForm);
                }
            },
            error: function () {
                $.alertMessage('抱歉! 系统异常, 请联系管理员处理, 或稍后再试. ', pwdForm);
            }
        });
    }
});

// 表单验证
function formValidator() {
    pwdForm.bootstrapValidator({
        group: '.rowGroup',
        message: 'This value is not valid',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            prePassword: {
                message: '密码验证失败',
                validators: {
                    notEmpty: {
                        message: '密码不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 20,
                        message: '密码长度必须在6到20位之间'
                    },
                    regexp: {
                        regexp: /^[a-zA-Z0-9_@\.#\$&]+$/,
                        message: '密码只能包含大、小写字母，数字，下划线和_@.#$&'
                    },
                    threshold: 6, //有6字符以上才发送ajax请求
                    remote: {//ajax验证, result:{"valid",true or false}, 表示正确: {"valid",true}
                        url: ctx + '/tbSysLoginmsg/checkInputField',
                        message: '你输入的密码错误',
                        delay: 1000,//设置2秒发送一次ajax（默认输入一个字符，提交一次）
                        type: 'POST',//请求方式
                        //自定义提交数据, 默认值提交当前input value
                        data: function (validator) {
                            return {
                                loginId: $(':input[name="loginId"]').val(),
                                loginPasswd: $(':input[name="prePassword"]').val()
                            };
                        }
                    }
                }
            },
            loginPasswd: {
                message: '密码验证失败',
                validators: {
                    notEmpty: {
                        message: '密码不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 20,
                        message: '密码长度必须在6到20位之间'
                    },
                    identical:{
                        field: 'rePassword',
                        message: '两次输入的密码不一致'
                    },
                    regexp: {
                        regexp: /^[a-zA-Z0-9_@\.#\$&]+$/,
                        message: '密码只能包含大、小写字母，数字，下划线和_@.#$&'
                    }
                }
            },
            rePassword: {
                message: '密码验证失败',
                validators: {
                    notEmpty: {
                        message: '密码不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 20,
                        message: '密码长度必须在6到20位之间'
                    },
                    identical:{
                        field: 'loginPasswd',
                        message: '两次输入的密码不一致'
                    },
                    regexp: {
                        regexp: /^[a-zA-Z0-9_@\.#\$&]+$/,
                        message: '密码只能包含大、小写字母，数字，下划线和_@.#$&'
                    }
                }
            }
        }
    });
}

// 初始化表单验证
formValidator();

// 重置表单验证
function resetPwdValidator() {
    var bootstrapValidator = pwdForm.data('bootstrapValidator');
    if (bootstrapValidator) {
        bootstrapValidator.destroy();
        pwdForm.data('bootstrapValidator', null);
        formValidator();
    }
}